home *** CD-ROM | disk | FTP | other *** search
- 100 REM M.RICHTER 90064 12/78
- 110 PW=0:TW=0:TY=0
- 120 KB=198
- 130 POKE53280,1:POKE53281,1:POKE53272,21:I=RND(-TI):DIMD$(27),H$(1,20),PL(6),H(20)
- 140 LU$="":LO$=LU$+" [145]"
- 150 PRINT"[152][147] DOMINOES ":PRINT"PET HAS THREE LEVELS OF PLAY:
- 160 [153]"1. EASY: YOU CAN WIN TWO GAMES OF THREE
- 170 PRINT"2. SLIGHTLY HARDER: MAYBE 60/40 FOR YOU
- 180 [153]"3. TOUGH: NEARLY EQUALS BEST PLAY
- 190 PRINT"WHICH DO YOU WANT?
- 200 [151]KB,0:[146]KB,1:[161]C$:[139]C$[179]"1"[176]C$[177]"3"[137]200
- 210 AL[178][197](C$)
- 220 PL[178]0:[153]"LOAD"[166]15)"DOMINOES
- 230 J=0:K=0:FORI=0TO27:D$(I)=MID$(STR$(J),2)+MID$(STR$(K),2):GOSUB1550
- 240 K=K+1:IFK>JTHENK=0:J=J+1
- 250 NEXTI:FORI=0TO26:J=I+(28-I)*RND(1):X$=D$(I):D$(I)=D$(J):D$(J)=X$:GOSUB1550
- 260 NEXTI:FORJ=0TO6:FORI=0TO1:H$(I,J)=D$(7*I+J):NEXTI:GOSUB1550:NEXTJ:SP=14
- 270 FORJ=7TO20:FORI=0TO1:H$(I,J)="":NEXTI:GOSUB1550:NEXTJ
- 280 K0$="D":K1$="D[146]RAW":K2$="DRAWS A BONE
- 290 L$[178]"":[129]J[178]0[164]1:[129]I[178]0[164]6:X$[178][200](H$(J,I),1):[141]1550
- 300 [139]X$[178][201](H$(J,I),1)[175]X$[177]L$[167]L$[178]X$:P[178]J:K[178]I
- 310 [130]I:[130]J:[139]L$[178]""[137]220
- 320 [153]"PCMDLCMDACMDYCMDECMDD
- 330 PRINTSPC(8)"[213][192][192][192][192][162][162][162][192][192][192][192][201] BONE COUNT
- 340 [153][166]8)"(null) WAIT (null) STR$STR$STR$STR$STR$STR$STR$STR$STR$STR$
- 350 PRINTSPC(8)"[221] [214] [146] [214] [221] YARD
- 360 [153][166]8)"(null) WAIT (null) YOU
- 370 PRINTSPC(8)"[202][192][192][192][192][162][162][162][146][192][192][192][192][203] PET
- 380 [141]1020:[141]1170
- 390 [153]LO$:[153]"THE LARGEST DOUBLET IS ";L$L$:R$[178]L$:[141]1010:[137]640
- 400 P[178]0:[151]KB,0:[153]LO$:[153]"WHICH BONE (OR "K1$")? ";
- 410 [146]KB,1:[161]X$:[139]X$[178]K0$[167][153]X$:[137]1230
- 420 [139]X$[179]"0"[176]X$[177]"6"[137]410
- 430 [153]X$;:
- 440 [146]KB,1:[161]Y$:[139]Y$[179]"0"[176]Y$[177]"6"[137]440
- 450 [153]Y$:X$[178]X$[170]Y$:Y$[178]Y$[170][200](X$,1)
- 460 [129]K[178]0[164]20:[139]H$(0,K)[179][177]X$[175]H$(0,K)[179][177]Y$[167][130]K:[137]1540
- 470 RF[178]0:[139]PL[178]0[167]L$[178][201](X$,1):R$[178][200](X$,1):LF[178]1:[137]640
- 480 LF[178]0:[139]L$[178][200](X$,1)[176]L$[178][201](X$,1)[167]LF[178]1
- 490 [139]R$[178][200](X$,1)[176]R$[178][201](X$,1)[167]RF[178]1
- 500 [139]LF[170]RF[178]0[137]1540
- 510 [139]LF[172]RF[178]0[167][145]LF[170]1[137]600,620
- 520 [139]L$[178]R$[176]H$(0,1)[178]""[137]580
- 530 [153]LO$:[153]X$" - LEFT OR RIGHT? ";
- 540 [161]C$:[139]C$[179][177]"L"[175]C$[179][177]"R"[137]540
- 550 [153]C$:[139]C$[178]"L"[137]580
- 560 [139]R$[178][201](X$,1)[167]R$[178][200](X$,1):[137]640
- 570 R$[178][201](X$,1):[137]640
- 580 [139]L$[178][201](X$,1)[167]L$[178][200](X$,1):[137]640
- 590 L$[178][201](X$,1):[137]640
- 600 [139]R$[178][201](X$,1)[167]R$[178][200](X$,1):[137]640
- 610 R$[178][201](X$,1):[137]640
- 620 [139]L$[178][201](X$,1)[167]L$[178][200](X$,1):[137]640
- 630 L$[178][201](X$,1):[137]640
- 640 [143] PLAY THE DOMINO
- 650 L%[178]0:Y$[178]H$(P,K):[129]I[178]K[164]19:H$(P,I)[178]H$(P,I[170]1):[130]I:H$(P,I)[178]"":[141]1170
- 660 [141]1020:X$[178]Y$:[153]"":[141]1070:PL[178]PL[170]1
- 670 X[178]PL:[139]X[177]18[167]X[178]X[171]18:[153]"
- 680 PRINTTAB(1+2*X)X$
- 690 X$=L$:GOSUB1080:PRINTLEFT$(LO$,12)TAB(9)X$:X$=R$:GOSUB1080
- 700 PRINT"[145][145][145]"TAB(17)X$:IFH$(0,0)=""ORH$(1,0)=""GOTO1330
- 710 IFPGOTO400
- 720 REM PET'S PLAY
- 730 P=1:ONALGOTO910,860
- 740 FORI=0TO6:PL(I)=0:NEXTI
- 750 FORK=0TO20:IFH$(1,K)=""GOTO770
- 760 GOSUB1570:X=VAL(X$):PL(X)=PL(X)+1:X=VAL(Y$):PL(Y)=PL(Y)+1:NEXTK
- 770 REM PLAYABLE DOUBLET WITH SUCCESSOR
- 780 FORK=0TO20:IFH$(1,K)=""GOTO810
- 790 GOSUB1570:IF(X$=Y$)AND(X$=R$ORX$=L$)AND(PL(VAL(X$))>2)GOTO940
- 800 NEXTK
- 810 REM PLAYABLE BONE WITH SUCCESSOR
- 820 FORK=0TO20:IFH$(1,K)=""GOTO860
- 830 GOSUB1570:IF((X$=L$)OR(X$=R$))ANDPL(VAL(X$))>1GOTO940
- 840 IF((Y$=L$)OR(Y$=R$))ANDPL(VAL(Y$))>1GOTO940
- 850 NEXTK
- 860 REM PLAYABLE DOUBLET
- 870 FORK=0TO20:IFH$(1,K)=""GOTO900
- 880 GOSUB1570:IFX$=Y$AND(X$=L$ORX$=R$)GOTO940
- 890 NEXTK
- 900 REM STILL MORE ALGORITHMS HERE
- 910 REM PLAYABLE BONE
- 920 FORK=0TO20:GOSUB1570:IFL$=X$ORR$=X$ORL$=Y$ORR$=Y$GOTO940
- 930 NEXTK:PRINTLO$:PRINT"PET "K2$:GOSUB1010:GOTO1230:REM PET DRAWS OR PASSES
- 940 REM WRAPUP PET'S PLAY
- 950 PRINTLO$:PRINT"PET PLAYS "X$Y$:GOSUB1010
- 960 X=VAL(X$):PL(X)=PL(X)-1:X=VAL(Y$):PL(X)=PL(X)-1
- 970 IFL$=X$THENL$=Y$:GOTO640
- 980 IFL$=Y$THENL$=X$:GOTO640
- 990 IFR$=X$THENR$=Y$:GOTO640
- 1000 R$=X$:GOTO640
- 1010 FORXX=1TO100:NEXTXX:RETURN:REM PAUSE 1 SEC
- 1020 REM PUT UP COUNT
- 1030 PRINTLEFT$(LO$,13)TAB(30)28-SP"[157] "
- 1040 FORI=0TO20:IFH$(0,I)>""THENNEXTI
- 1050 PRINTTAB(30)I"[157] ":FORI=0TO19:IFH$(1,I)>""THENNEXTI
- 1060 PRINTTAB(30)I"[157] ":RETURN
- 1070 X$=LEFT$(X$,1)+"[157][192][157]"+RIGHT$(X$,1):RETURN
- 1080 REM GET DOT FORMAT
- 1090 ON1+VAL(X$)GOTO1100,1110,1120,1130,1140,1150,1160
- 1100 X$=" [157][157][157] [157][157][157] ":RETURN
- 1110 X$=" [157][157][157] [209] [157][157][157] ":RETURN
- 1120 X$="[209] [157][157][157] [157][157][157] [209]":RETURN
- 1130 X$="[209] [157][157][157] [209] [157][157][157] [209]":RETURN
- 1140 X$="[209] [209][157][157][157] [157][157][157][209] [209]":RETURN
- 1150 X$="[209] [209][157][157][157] [209] [157][157][157][209] [209]":RETURN
- 1160 X$="[209] [209][157][157][157][209] [209][157][157][157][209] [209]":RETURN
- 1170 REM PRINT PLAYER'S DOMINOES
- 1180 PRINTLU$"":FORI=0TO19:IFH$(0,I)>""GOTO1210
- 1190 IFI<20THENPRINT" [157] [157] "
- 1200 I=0:RETURN
- 1210 X$=H$(0,I):GOSUB1070:PRINTX$;:IFI<19THENPRINT"[145] [145]";
- 1220 NEXTI:RETURN
- 1230 REM PET DRAWS OR PASSES
- 1240 IFSP=28GOTO1290
- 1250 FORI=0TO20:IFH$(P,I)>""THENNEXTI
- 1260 PRINTLEFT$(LU$,13)
- 1270 IFSP>26THENPRINT" YARD":PRINT"EMPTY":K0$="P":K1$="P[146]ASS":K2$="PASSES
- 1280 H$(P,I)[178]D$(SP):SP[178]SP[170]1:[141]1170:[141]1020:[145]P[170]1[137]400,720
- 1290 [143] PASS LOGIC
- 1300 [139]L%[137]1330
- 1310 L%[178]1
- 1320 [145]P[170]1[137]720,400
- 1330 S0[178]0:[129]I[178]0[164]19:X$[178]H$(0,I)
- 1340 [139]X$[177]""[167]S0[178]S0[170][197]([200](X$,1))[170][197]([201](X$,1)):[130]I
- 1350 S1[178]0:[129]I[178]0[164]19:X$[178]H$(1,I)
- 1360 [139]X$[177]""[167]S1[178]S1[170][197]([200](X$,1))[170][197]([201](X$,1)):[130]I
- 1370 [139]S0[177]S1[167]X$[178]" PET WINS ":PW[178]PW[170]1
- 1380 [139]S1[177]S0[167]X$[178]" YOU WIN "
- 1390 [139]S0[178]S1[167]X$[178]"IT'S A DRAW":TY[178]TY[170]1
- 1400 T0[178]T0[170]S0:T1[178]T1[170]S1:TW[178]TW[170]1:[141]1020
- 1410 [153]LO$:[153]""X$"WAIT SCORE: YOU"S0", PET"S1:[141]1010
- 1420 [153]"TOTOTOTOTOTOTOTOTOTOTO":[153]" ANOTHER? "
- 1430 [151]KB,0:[146]KB,1:[161]C$:[139]C$[178]"Y"[137]220
- 1440 [139]C$[179][177]"N"[137]1430
- 1450 [143] WRAPUP
- 1460 [153]"LOAD TOTALS"
- 1470 [153]" YOU WON",TW[171]TY[171]PW"GAMES"
- 1480 [153]" PET WON",PW"GAMES"
- 1490 [139]TY[167][153]" AND",TY"WERE DRAWS"
- 1500 [153]" POINTS"
- 1510 [153]" YOU",T0"POINTS"
- 1520 [153]" PET",T1"POINTS"
- 1530 [128]
- 1540 [153]LO$:[153]"TRY AGAIN: ";:[151]203,0:[137]410
- 1550 [153]"ON"[166]14);:[139]U[167][153]" ";
- 1560 [153]"SHUFFLING ":U[178]1[171]U:[142]
- 1570 X$[178]H$(1,K):Y$[178][201](X$,1):X$[178][200](X$,1):[142]
-